/* 区域票务服务接口 */
namespace go regional

include "common.thrift"

service TicketRegionalService {
    /**
     * 查询本地区域票务资源
     * @param departureStationId 出发站ID（0表示不限制）
     * @param arrivalStationId 到达站ID（必须与出发站同区域）
     * @param travelDate 乘车日期（格式：yyyy-MM-dd）
     * @return 可用座位列表（按票价排序）
     */
    list<common.SeatDTO> QueryLocalSeats(
        1: i32 departureStationId,
        2: i32 arrivalStationId,
        3: string travelDate
    ) throws (1: common.BizException e),

    /**
     * 锁定本地座位（有效期15分钟）
     * @return 临时锁定ID（用于后续支付确认）
     */
    string LockSeats(
        1: common.PurchaseRequest request
    ) throws (1: common.BizException e),

    /**
     * 确认购买本地座位
     * @param lockId 前置锁定的ID
     * @return 生成的正式订单
     */
    common.OrderDTO ConfirmPurchase(
        1: string lockId
    ) throws (1: common.BizException e),

    /**
     * 本地退票操作
     * @param refundRequest 需验证座位属于当前区域
     */
    common.OrderDTO ProcessRefund(
        1: common.RefundRequest request
    ) throws (1: common.BizException e)
}